package com.payment.system.mapper;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.payment.system.domain.PlanItemNew;	

/**
 * 新计划详情 数据层
 * 
 * @author payment
 * @date 2019-07-02
 */
public interface PlanItemNewMapper 
{
	/**
     * 查询新计划详情信息
     * 
     * @param id 新计划详情ID
     * @return 新计划详情信息
     */
	public PlanItemNew selectPlanItemNewById(String id);
	
	/**
     * 查询新计划详情列表
     * 
     * @param planItemNew 新计划详情信息
     * @return 新计划详情集合
     */
	public List<PlanItemNew> selectPlanItemNewList(PlanItemNew planItemNew);
	
	/**
     * 新增新计划详情
     * 
     * @param planItemNew 新计划详情信息
     * @return 结果
     */
	public int insertPlanItemNew(PlanItemNew planItemNew);
	
	/**
     * 修改新计划详情
     * 
     * @param planItemNew 新计划详情信息
     * @return 结果
     */
	public int updatePlanItemNew(PlanItemNew planItemNew);
	
	/**
     * 删除新计划详情
     * 
     * @param id 新计划详情ID
     * @return 结果
     */
	public int deletePlanItemNewById(String id);
	
	/**
     * 批量删除新计划详情
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deletePlanItemNewByIds(String[] ids);
	/**
	 * 根据时间获取待执行计划
	 * @param todayStartDate
	 * @param parse
	 * @return
	 */
	public List<PlanItemNew> selectPlanItemListByTimeAndStatus(@Param("ss")Date todayStartDate, @Param("ee")Date parse);

	public List<PlanItemNew> selectGrouProgress(@Param("planId")String planId, @Param("groupNumber")Integer groupNumber);
	/**
	 * 根据大计划ID获取计划详情列表
	 * @param planId
	 * @return
	 */
	public List<PlanItemNew> selectPlanItemNewListByPlanId(@Param("planId")String planId);
	/**
	 * 根据大计划id 和 状态查询小计划列表
	 * @param  planId
	 * @param  status
	 * @return
	 */
	public List<PlanItemNew> selectPlanNewListByPlanIdAndStatus(@Param("planId") String planId, @Param("status") Integer status);

	/**
	 * 根据订单id 查询小计划信息
	 * @param orderId
	 * @return
	 */
	PlanItemNew selectPlanItemNewListByOrderId(@Param("orderId") String orderId);
	
	List<PlanItemNew> selectPlanItemNewList1(PlanItemNew planItemNew);
	/**
	 * 查询同组（还款/消费）订单号
	 * @param id
	 * @param groupNumber
	 * @param moneyType
	 * @return
	 */
	public List<String> selectOrderNoByPlanIdAndGroupAndType(@Param("planId")String id, @Param("groupNumber")Integer groupNumber, @Param("moneyType")String moneyType);
}